export type DialogType = 'info' | 'success' | 'error' | 'warn' | 'warning';
/**
 * 自定义提示框配置
 *
 * @interface ICustomDialogOptions
 */
export interface ICustomDialogOptions {
	/**
	 * 类型
	 *
	 * @type {('warning' | 'info' | 'error' | 'success')}
	 * @memberof ICustomDialogOptions
	 */

	type?: DialogType;
	/**
	 * 标题
	 *
	 * @type {string}
	 * @memberof ICustomDialogOptions
	 */
	title?: string;

	/**
	 * 内容
	 *
	 * @type {(string )}
	 * @memberof ICustomDialogOptions
	 */
	content?: string;

	/**
	 * 自定义样式
	 *
	 * @type {string}
	 * @memberof ICustomDialogOptions
	 */
	customClass?: string;

	/**
	 * 取消按钮文本
	 *
	 * @type {string}
	 * @memberof ICustomDialogOptions
	 */
	cancelText?: string;

	/**
	 * 确认按钮文字
	 *
	 * @type {string}
	 * @memberof ICustomDialogOptions
	 */
	okText?: string;

	/**
	 * 提示框宽度
	 *
	 * @type {number}
	 * @memberof ICustomDialogOptions
	 */
	width?: number;

	/**
	 * 点击确定回调
	 *
	 * @memberof ICustomDialogOptions
	 */
	ok?: (...args: any[]) => void;

	/**
	 * 点击取消回调
	 *
	 * @memberof ICustomDialogOptions
	 */
	cancel?: (...args: any[]) => void;
}

/**
 * 对话框提示辅助类
 */
export interface IDialogHelper {
	/**
	 * @description 成功提示
	 * @param {string} title 标题
	 * @param {string} message 内容
	 * @param {(...args: any[]) => any} [onOk] 确认回调
	 * @param {(...args: any[]) => any} [onCancel] 取消回调
	 * @memberof IDialogHelper
	 */
	success(
		title: string,
		message: string,
		onOk?: (...args: any[]) => any,
		onCancel?: (...args: any[]) => any
	): void;

	/**
	 * @description 信息提示
	 * @param {string} title 标题
	 * @param {string} message 内容
	 * @param {(...args: any[]) => any} [onOk] 确认回调
	 * @param {(...args: any[]) => any} [onCancel] 取消回调
	 * @memberof IDialogHelper
	 */
	info(
		title: string,
		message: string,
		onOk?: (...args: any[]) => any,
		onCancel?: (...args: any[]) => any
	): void;

	/**
	 * @description 警告提示
	 * @param {string} title 标题
	 * @param {string} message 内容
	 * @param {(...args: any[]) => any} [onOk] 确认回调
	 * @param {(...args: any[]) => any} [onCancel] 取消回调
	 * @memberof IDialogHelper
	 */
	warning(
		title: string,
		message: string,
		onOk?: (...args: any[]) => any,
		onCancel?: (...args: any[]) => any
	): void;

	/**
	 * @description 错误提示
	 * @param {string} title 标题
	 * @param {string} message 内容
	 * @param {(...args: any[]) => any} [onOk] 确认回调
	 * @param {(...args: any[]) => any} [onCancel] 取消回调
	 * @memberof IDialogHelper
	 */
	error(
		title: string,
		message: string,
		onOk?: (...args: any[]) => any,
		onCancel?: (...args: any[]) => any
	): void;

	/**
	 * @description 确认提示
	 * @param {string} title 标题
	 * @param {string} message 内容
	 * @param {(...args: any[]) => any} [onOk] 确认回调
	 * @param {(...args: any[]) => any} [onCancel] 取消回调
	 * @memberof IDialogHelper
	 */
	confirm(
		title: string,
		message: string,
		onOk?: (...args: any[]) => any,
		onCancel?: (...args: any[]) => any
	): void;

	/**
	 * 自定义打开方式
	 *
	 * @param {ICustomDialogOptions} options
	 * @memberof IDialogHelper
	 */
	custom(options: ICustomDialogOptions): void;
}
